import asrRequest from '@/utils/asrRequest'

// 获取ASR模型列表
export function getModels() {
  return asrRequest({
    url: '/models/asr',
    method: 'get'
  })
}

// 获取指定ASR模型
export function getModel(modelId) {
  return asrRequest({
    url: `/models/asr/${modelId}`,
    method: 'get'
  })
}

// 获取说话人模型配置
export function getSpeakerModel() {
  return asrRequest({
    url: '/models/speaker',
    method: 'get'
  })
}

// 批量上传音频文件
export function uploadFiles(formData) {
  return asrRequest({
    url: '/files/upload/batch',
    method: 'post',
    data: formData
    // 不要手动设置Content-Type，让浏览器自动设置boundary
  })
}

// 创建ASR任务
export function createTask(data) {
  return asrRequest({
    url: '/asr/tasks',
    method: 'post',
    data: data
  })
}

// 获取任务状态
export function getTaskStatus(taskId) {
  return asrRequest({
    url: `/asr/tasks/${taskId}`,
    method: 'get'
  })
}

// 获取任务结果
export function getTaskResult(taskId) {
  return asrRequest({
    url: `/asr/tasks/${taskId}/result`,
    method: 'get'
  })
}

// 取消任务
export function cancelTask(taskId) {
  return asrRequest({
    url: `/asr/tasks/${taskId}/cancel`,
    method: 'post'
  })
}

// 删除任务
export function deleteTask(taskId) {
  return asrRequest({
    url: `/asr/tasks/${taskId}`,
    method: 'delete'
  })
}

// 获取任务列表
export function getTaskList(params) {
  return asrRequest({
    url: '/asr/tasks',
    method: 'get',
    params: params
  })
}

export const asrApi = {
  getModels,
  getModel,
  getSpeakerModel,
  uploadFiles,
  createTask,
  getTaskStatus,
  getTaskResult,
  cancelTask,
  deleteTask,
  getTaskList
}
